/*
 * Kalman.h
 *
 * 		Author: Christian
 *
 * 		Letzes Update: 3.11.13 | Code aufgeräumt
 *
 */
#ifndef KALMAN_H_
#define KALMAN_H_

#include <inttypes.h>
#include <avr/eeprom.h>

#include "Scheduler.h"
#include "Mathe.h"
#include "UART.h"


///////////////////////////////////////////////////////////////////

//Einstellungen

// Wird über EEPROM geregelt
//#define Q_ANGLE				5		// Process noise variance for the accelerometer
//#define Q_GYRO		   	 	10		// Process noise variance for the gyro bias
//#define R_ANGLE				50		// Measurement noise variance -
//										//			this is actually the variance of the measurement noise
//
//#define TP					30		// Tiefpass einstellung (0-100)
//
//
//	/* EEPROM Adressen
//	 *
//	 *	mode	| 0x00
//	 *
//	 * anteil_p | 0x01
//	 * anteil_i | 0x02
//	 * anteil_d | 0x03
//	 *
//	 * q_angle 	| 0x05
//	 * q_gyro  	| 0x06
//	 * r_angle 	| 0x07
//	 * lowPass	| 0x08
//	 */
//
////////////////////////////////////////////////////////////////////


// 100 entspricht 1 Grad
extern int16_t angle_x;
extern int16_t angle_y;
extern int16_t angle_z;
extern int16_t angle_v_z;
/////////////////////////////////////////////////////////////////////

void kalman_init();

void kalman_update();

void kalman_setup_update();

/////////////////////////////////////////////////////////////////////

#endif /* KALMAN_H_ */
